Pandas 和 Numpy的标准差计算结果不一样 您所在的位置:网站首页 excel average函数和计算器算的不一样 Pandas 和 Numpy的标准差计算结果不一样

Pandas 和 Numpy的标准差计算结果不一样

2024-07-09 23:43| 来源: 网络整理| 查看: 265

Pandas 和 Numpy的标准差计算竟然不一样! 今天计算CV(变异系数),其定义如下: C V = σ / μ . CV= σ/μ. CV=σ/μ. 其中σ是标准差, μ是均值。

用pandas来实现对df的CV计算,为了验证准确性,抽了一列用np.array.std()检验,发现二者计算结果竟然不一样!

#pandas cur_res['mean']=df.mean().values cur_res['std']=df.std().values cur_res['cv']=df.std().values/array.mean().values #pandas结果(单独拿了一行) #mean 0.006429 #std 0.002504 #cv 0.389481 #numpy a=np.array([0.0062,0.0059,0.0065,0.0081,0.0015,0.0073,0.0095]) a_std=a.std() a_mean=a.mean() a_cv=a.std()/a.mean() #numpy结果 #mean 0.006429 #std 0.002318 #cv 0.36059

根据结果可见,mean计算一致,但std这里出现不一致,导致最后cv结果也不同。 经查,在默认情况下,

numpy计算的为总体标准偏差,ddof=0。 使用场景为:拥有所有数据的情况下,计算所有数据的标准差时使用,即最终除以n,而非n-1。pandas计算的为样本标准偏差,ddof=1。 使用场景为:只有部分数据但需要求得总体的标准差时使用,当只有部分数据时,根据统计规律,除以n时计算的标准差往往偏小,因此需要除以n-1,即n-ddof。

需要根据实际数据情况来选择合适的函数。

在我的数据里,样本量偏少,仅是几次实验结果,并不是总体数据,而我想要得到总体分布的离散程度,则需要使用n-1的标准差计算方式。所以以pandas计算结果为准。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有